Classboxes: Supporting Unanticipated Variation Points in the Source Code
نویسندگان
چکیده
Software product lines refer to engineering techniques for creating a portfolio of similar software systems from a shared set of software assets in a controlled way. Managing variability is the key issue of software product line practice. Modelling variation points is largely addressed by a selection of linguistic constructs and modelling techniques (e.g., design pattern, macro, configuration files). New constraints and industrial requirements often result in the emergence of new variation points. The success of the evolution of a product line depends on its capability to absorb unanticipated variation points. This paper presents the classboxes programming construct to support unanticipated variation point in the software source code. Classboxes offer a visibility mechanism that controls the scope of an evolution step and limits it only to the part of a program that needs to be affected by this evolution. Benefits of classboxes are illustrated on an arcade game maker product line.
منابع مشابه
Supporting Unanticipated Changes with Traits and Classboxes
On the one hand, traits are a powerful way of structuring classes. Traits support the reuse of method collections over several classes. However, traits cannot be used when specifying unanticipated changes to an application. On the other hand, classboxes are a new module system that supports the local redefinition of classes: a collection of classes can be locally extended with variables and/or ...
متن کاملClassboxes: A Minimal Module Model Supporting Local Rebinding
Classical module systems support well the modular development of applications but do not offer the ability to add or replace a method in a class that is not defined in that module. On the other hand, languages that support method addition and replacement do not provide a modular view of applications, and their changes have a global impact. The result is a gap between module systems for object-o...
متن کاملAdding 166Ho data to VARSKIN2 code and dose calculation to human skin
Background: Skin cancer can be treated by various methods. Electron radiotherapy has been a useful therapeutic modality in the treatment of skin cancers in areas which are difficult to cure by other methods. Depth dose distribution of 166Ho using VARSKIN2 code is presented in this work. Material and Methods: Depth dose distribution of 166Ho was calculated, using VARSKIN2 code by adding...
متن کاملImpact of Unanticipated software evolution on development cost and quality: an empirical evaluation
Most techniques to aid maintenance and evolution of software require to define extension points. Generally, developers try to anticipate the parts that are more likely to evolve, but they can make mistakes and spend money in vain. With Unanticipated Software Evolution, developers can easily change any element of the software, even those that are not related with an extension point. However, we ...
متن کاملDynamic Object Replacement and Implementation-Only Classes
GILGUL is an extension of the Java programming language that allows for dynamic object replacement without consistency problems. This is possible in a semantically clean way, because its model strictly separates the notions of reference and comparison that usually are subsumed in the concept of object identity. Since GILGUL’s new operations respect Java’s type system, objects still can be repla...
متن کامل